home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b8.d64 / circle1.l < prev    next >
Text File  |  2007-02-28  |  1KB  |  53 lines

  1. 0010 SETGRAPHIC 0
  2. 0020 HIDETURTLE 
  3. 0030 FULLSCREEN 
  4. 0040 PENCOLOR 1
  5. 0050 BACKGROUND 0
  6. 0060 BORDER 15
  7. 0070 FOR RADIUS:=10 TO 100 STEP 10 DO
  8. 0080 AT'X0:=119
  9. 0090 AT'Y0:=100
  10. 0100 CIRCLE(RADIUS,AT'X0,AT'Y0)
  11. 0110 ENDFOR RADIUS
  12. 0120 END 
  13. 0130 PROC CIRCLE(RADIUS,X0,Y0) CLOSED
  14. 0140 // DRAW CIRCLE OF GIVEN RADIUS
  15. 0150 //   CENTERED AT X0, Y0
  16. 0160 IF RADIUS<50 THEN
  17. 0170 N'STEPS:=36
  18. 0180 ELSE 
  19. 0190 N'STEPS:=72
  20. 0200 ENDIF 
  21. 0210 DTHETA:=6.283192/N'STEPS
  22. 0220 COS'DTHETA:=COS(DTHETA)
  23. 0230 SIN'DTHETA:=SIN(DTHETA)
  24. 0240 FIRST'X:=RADIUS; FIRST'Y:=0
  25. 0250 MOVE'TO(X0+FIRST'X,Y0+FIRST'Y)
  26. 0260 PREV'X:=FIRST'X; PREV'Y:=FIRST'Y
  27. 0270 FOR POINT:=1 TO N'STEPS DO
  28. 0280 NEXT'X:=PREV'X*COS'DTHETA-PREV'Y*SIN'DTHETA
  29. 0290 NEXT'Y:=PREV'X*SIN'DTHETA+PREV'Y*COS'DTHETA
  30. 0300 DRAW'TO(X0+NEXT'X,Y0+NEXT'Y)
  31. 0310 PREV'X:=NEXT'X; PREV'Y:=NEXT'Y
  32. 0320 ENDFOR POINT
  33. 0330 ENDPROC CIRCLE
  34. 0340 PROC MOVE'TO(X,Y) CLOSED
  35. 0350 ADJUST(X,Y)
  36. 0360 MOVETO X,Y
  37. 0370 ENDPROC MOVE'TO
  38. 0380 PROC DRAW'TO(X,Y) CLOSED
  39. 0390 ADJUST(X,Y)
  40. 0400 DRAWTO X,Y
  41. 0410 ENDPROC DRAW'TO
  42. 0420 PROC ADJUST(REF X,REF Y) CLOSED
  43. 0430 SCRUNCH:=1.34
  44. 0440 // NOTE: USING A SCRUNCH FACTOR
  45. 0450 //   CORRECTS THE DIFFERENCE IN
  46. 0460 //   VERTICAL AND HORIZONTAL UNITS
  47. 0470 //
  48. 0480 //   MAX X IS REDUCED TO  238
  49. 0490 //   HORIZONTAL CENTER IS 119
  50. 0500 //
  51. 0510 X:=SCRUNCH*X
  52. 0520 ENDPROC ADJUST
  53.